package datastruct;

/**
 * Created by QingYun on 2017/10/8.
 * 直接插入排序
 */
public class FirstJava {
    public static void main(String[] args) {
        int a[] = {6, 5, 3, 2, 1, 8, 7, 2, 4};
        int n = a.length;
        insertionSort(a,n);
        for (int i = 0; i < n; i++) {
            System.out.print(a[i]+" ");
        }
    }


    // 直接插入排序 ，将一个数直接插入 到已经排序好的
    // 从原无序序列出去的顺序就是排好序后的顺序，所以插入排序是稳定的。
    public static void insertionSort(int a[], int n) {
        for (int i = 1; i < n; i++) {
           int currentValue=a[i];
           int j=i-1;
           while (j>=0&&a[j]>currentValue){
               a[j+1]=a[j];
               j--;
           }
           a[j+1]=currentValue;
        }
    }

}
